package ProyectoX;

import javax.swing.ImageIcon;

/**
 * Clase publica Laser extiende ArmaJugador.
 */
public class Laser extends ArmaJugador {

	/**
	 * Constructor.inicializa los atributos.
	 */
	public Laser(Nivel Nivel,  NaveJugador nj, int na) {
		super(Nivel, nj, na);
		setIcon(new ImageIcon(getClass().getClassLoader().getResource("Imagenes/Laser1.gif")));
		Potencia = 0;
	}

	/**
	 * Metodo publico que aumenta el nivel del arma y modifica la imagen del laser a la que corresponda con el nivel.
	 */
	public void AumentarNivel(NaveJugador MiNave) {
		NivelArma++;
		if(NivelArma == 2){
			ArmaJugador arma = MiNivel.obtenerArmasJugador().get(0);
			arma.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Imagenes/Laser2.gif")));
			
		}
		else
			if (NivelArma == 3){
				ArmaJugador arma = MiNivel.obtenerArmasJugador().get(0);
				arma.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Imagenes/Laser3.gif")));
			}
	}

	/**
	 * Metodo publico que disminuye el nivel del arma y modifica la imagen del laser a la que corresponda con el nivel.
	 */
	public void DisminuirNivel(NaveJugador MiNave) {
		NivelArma--;
		if(NivelArma == 2)
			this.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Imagenes/Laser2.gif")));	
		else
			if (NivelArma == 1)
				new ImageIcon(getClass().getClassLoader().getResource("Imagenes/Laser.gif"));
	}


	/**
	 *Pone la imagen no visible.
	 */
	public void quitarArma() {
		this.setVisible(false);	
		
	}

	@Override
	public void Mover(int i) {
		// TODO Auto-generated method stub
		
	}
	
	
protected synchronized void Colisiones(){
		
		if(this.estaEnPantalla()){
			
			for(NaveEnemiga Nave : MiNivel.obtenerNavesEnemigas()) {
				
				if(Nave.estaEnPantalla()){

					if(this.alcanzoObjeto(Nave)){
						int puntos= Nave.serAtacado();
						MiNivel.obtenerNaveJugador().setPuntaje(puntos);
						MiNivel.juego.jLabelPuntos.setText(" "+ MiNivel.obtenerNaveJugador().obtenerPuntaje());
						try {
							Thread.sleep(75);
						} catch (InterruptedException e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
						quitarArma();
						
						if(! Nave.vive()){
							Nave.Morir();
						}
					}
				}
			}
			
		}
	}
	

}